package com.xinggq.pay.service.pay.channel.yse.pay.wxpay.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.xinggq.pay.service.pay.channel.PayChannelResp;
import com.xinggq.pay.service.pay.channel.yse.pay.wxpay.dto.YseWxPayRespDto.YseWxPayRespDetailDTO;
import java.math.BigDecimal;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @Description
 * @Author xinggq
 * @Date 2025/9/12
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class YseWxPayRespDto implements PayChannelResp<YseWxPayRespDetailDTO> {

  /**
   * 响应参数的签名串
   */
  @JsonProperty("sign")
  private String sign;

  /**
   * 银盛在线二维码支付响应数据
   */
  @JsonProperty("ysepay_online_weixin_pay_response")
  private YseWxPayRespDetailDTO ysepayOnlineWeixinPayResponse;

  @Override
  public YseWxPayRespDetailDTO getCommonResp() {
    return ysepayOnlineWeixinPayResponse;
  }

  @Data
  @EqualsAndHashCode(callSuper = false)
  public static class YseWxPayRespDetailDTO {
    /**
     * 响应代码
     */
    @JsonProperty("code")
    private String code;

    /**
     * 响应代码描述
     */
    @JsonProperty("msg")
    private String msg;

    /**
     * 商户订单号
     */
    @JsonProperty("out_trade_no")
    private String outTradeNo;

    /**
     * 银盛交易流水号
     */
    @JsonProperty("trade_no")
    private String tradeNo;

    /**
     * 交易状态
     */
    @JsonProperty("trade_status")
    private String tradeStatus;

    /**
     * 该笔订单的资金总额，单位为RMB-Yuan。取值范围为[0.01，100000000.00]，精确到小数点后两位。100
     */
    @JsonProperty("total_amount")
    private BigDecimal totalAmount;

    /**
     * 交易币种 默认CNY
     */
    @JsonProperty("currency")
    private String currency;

    /**
     * 是否参与优惠，Y表示参与，N表示不参与
     */
    @JsonProperty("is_discount")
    private String isDiscount;

    /**
     * 发往渠道流水号
     */
    @JsonProperty("channel_send_sn")
    private String channelSendSn;

    /**
     * 参考总优惠金额 100．00
     */
    @JsonProperty("total_discount")
    private Double totalDiscount;

    /**
     * Json格式字符串，作用于原生态的js支付时的参数
     *
     */
    @JsonProperty("jsapi_pay_info")
    private String jsapiPayInfo;
  }


  //@Data
  //@EqualsAndHashCode(callSuper = false)
  //public static class JsapiPayInfo {
  //  /**
  //   * 商户在微信侧申请的APPID，接口返回jsapi_pay_info中的信息 wxd678efh567hg6787
  //   */
  //  @JsonProperty("appId")
  //  private String appId;
  //  /**
  //   * 时间戳，接口返回jsapi_pay_info中的信息
  //   */
  //  @JsonProperty("timeStamp")
  //  private String timeStamp;
  //  /**
  //   * 随机字机串，接口返回jsapi_pay_info中的信息 5K8264ILTKCH16CQ2502SI8
  //   */
  //  @JsonProperty("nonceStr")
  //  private String nonceStr;
  //  /**
  //   * 订单详情扩展字符串，接口返回jsapi_pay_info中的信息 prepay_id=u802345jgfjsdfg
  //   */
  //  @JsonProperty("package")
  //  private String packageStr;
  //  /**
  //   * 签名方式，接口返回 jsapi_pay_info中的信息 MD5
  //   */
  //  @JsonProperty("signType")
  //  private String signType;
  //  /**
  //   * 签名，接口返回jsapi_pay_info中的信息 C380BEC2BFD727A4B6845132
  //   */
  //  @JsonProperty("paySign")
  //  private String paySign;
  //}
  

}
